Fast save_excursion_save and save_excursion_restore.
authorDmitry Antipov <dmantipov@yandex.ru>
Fri, 27 Jul 2012 02:47:07 +0000 (06:47 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Fri, 27 Jul 2012 02:47:07 +0000 (06:47 +0400)
commiteb86bf0fef58c7e883e1d4a1e7e052462658dfb1
treec18858072bea381c06bab03225d8106f06881751
parent9bcb6dd6219a1bc11f54f49e7c4a98da42252e9e
Fast save_excursion_save and save_excursion_restore.
* lisp.h (struct Lisp_Excursion): New data type.
(PVEC_EXCURSION): New pseudovector type.
(XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
to deal with it.  Adjust comments.
(init_marker, attach_marker): New prototype.
(unchain_marker): Adjust prototype.
* marker.c (attach_marker): Change to global.
(init_marker): New function.
* alloc.c (Fmake_marker, build_marker): Use it.
(build_marker): More easserts.
(mark_object): Handle struct Lisp_Excursion.
* editfns.c (save_excursion_save, save_excursion_restore):
Reimplement to use struct Lisp_Excursion.  Add comments.
src/ChangeLog
src/alloc.c
src/editfns.c
src/lisp.h
src/marker.c